Skip to content

ci: make public-hygiene-lint green - #2

Merged
MattJackson merged 2 commits into
mainfrom
ci/public-hygiene-green
Aug 9, 2026
Merged

ci: make public-hygiene-lint green#2
MattJackson merged 2 commits into
mainfrom
ci/public-hygiene-green

Conversation

@MattJackson

Copy link
Copy Markdown
Contributor

public-hygiene-lint was RED on main in this repo. Every hit is fixed by rewriting the text to
state the BEHAVIOUR rather than our internal process. No allow markers were added anywhere in
this change: a blanket allow would turn the gate into decoration.

Hits found on main, and the decision for each

  • .github/scripts/next-version.sh + .github/workflows/release-selftest.yml [internal-issue-id]
    cited an internal guard id. REWRITTEN: the sentences already state what the self-test does, so
    the id is simply dropped. These were the only two hits in this repo.

Red before green

Same invocation CI uses. Output is ASCII-folded for this description; the runs are verbatim
otherwise.

Before (on main)

$ python3 busbarAI/scripts/public-hygiene-lint.py --root .
== public-hygiene: what a customer reads, in . ==
  scanned 16 file(s) via git ls-files; 11 rules applied

  [internal-issue-id] internal issue / task / audit-round identifier - 2 hit(s)
      why: cites a tracker or audit artifact the reader cannot open; `task #141` and `R27 #8` shipped inside operator-facing API documentation
      .github/scripts/next-version.sh:5: # release automation can't silently rot (guard #135.8). Prints "v<MAJOR>.<MINOR>.<PATCH>" to stdout.
      .github/workflows/release-selftest.yml:1: # CI self-test for the release-on-upstream version-compute logic (guard #135.8).

== result ==
  16 public file(s) scanned against 11 rules - 2 hit(s), 0 allowed
  public-hygiene-lint FAILED
  These lines describe how the software was BUILT, not what it does, in files a
  customer can read. Rewrite the text to state the behaviour or the invariant; if a
  line is genuinely legitimate, mark it:
    # public-hygiene-lint: allow - <why this text belongs in a public file>

After (this branch)

$ python3 busbarAI/scripts/public-hygiene-lint.py --root .
== public-hygiene: what a customer reads, in . ==
  scanned 16 file(s) via git ls-files; 11 rules applied

== result ==
  16 public file(s) scanned against 11 rules - 0 hit(s), 0 allowed
  public-hygiene-lint passed

Matthew Jackson added 2 commits August 8, 2026 16:00
The public-hygiene gate flags text in customer-readable files that
describes how the software was BUILT rather than what it DOES. Every hit
in this repo is rewritten to state the behaviour or the invariant; no
allow markers are added, so the gate keeps its teeth.
busbar 1.5.3 retired two config surfaces this fixture still used: `auth.methods:`
and INLINE module entries under `auth.admin_auth:`. An identity provider is now
defined ONCE under `identity-providers:` -- `browser_login` and `settings`
hanging off that single definition -- and referenced elsewhere by bare name.

A config still carrying the old shape is not merely deprecated: core recognises
it as a 1.x config and refuses to start, so the fixture described a gateway that
could never come up. All the test could report was the symptom, a long way from
the cause:

  test github_*_flow ... FAILED
  panicked at tests/e2e.rs: busbar exited early during health poll: exit status: 1

Reproduced by rendering this fixture's own YAML and feeding it to a `busbar`
built from the core branch CI tests against:

  [error] config.yaml: this looks like a busbar 1.x config; run
          `busbar --migrate-config <config.yaml>` and review the flagged items.
          1.x markers found:
    - `auth.methods:` (retired 1.5.3 -> the matching `identity-providers:`
      definition (browser_login + settings are per-provider))
    - `auth.admin_auth:` carries INLINE module entries (retired 1.5.3 -> define
      the provider once under `identity-providers:` and reference it by bare name)

The replacement shape is core's own `--migrate-config` output for the previous
fixture, confirmed by re-validating: the 1.x gate is cleared and the only
remaining complaint is that the github plugin is not in the plugins directory,
which is precisely what this test puts there.
@MattJackson
MattJackson merged commit fb3ec90 into main Aug 9, 2026
1 check passed
@MattJackson
MattJackson deleted the ci/public-hygiene-green branch August 9, 2026 02:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant